#ifndef __DRV_FLASH_H__
#define __DRV_FLASH_H__
#include "head.h"

enum
{
	AT_BL =0,
	AT_TEST,
	AT_APP,
};


typedef struct
{
	u8 str_date[16];
	u8 str_time[16];
	u8 str_version[16];
	//u8 checksum[4];
}FLASH_INFO_def;
#define FLASH_INFO_SIZE	sizeof(FLASH_INFO_def)

extern const u8 KEY_BL_buf[4];
extern const u8 KEY_TEST_buf[4];
extern const u8 KEY_APP_buf[4];


void Get_UID(u8 *uid);
void Get_FlashInfo(u32 info_addr, u8 *info);
void Info_Init(void);
void Print_FlashInfo(void);
void Get_TestCode(u8 *code);
u8 Check_TestCode(void);
u8 Write_TestCode(u8 step);
void ErasePage(u32 addr);
u8t DFlash_ErasePage(u32 start, u32 end);
u8t DFlash_WritePage(u32 addr, u8 *buf, u16 count);
u8t DFlash_WriteBytes(u32 start, u8 *buf, u16 count);
void DFlash_ReadBytes(u32 addr, u8 *buf, u16 count);
u32t DFlash_CheckSum(u32 start, u32 end);

#endif

